大家好,我是富士大顆 Aiko
JavaScript 是我第一個認識的程式語言,主要是跟著 AstroCamp 的進度,會是從前端學到後端。
那也由於 JS 的「語法寬鬆性」以及「經常變化」,對新手而言確實是比較難以上手。
以下是我學習 JavaScript 的心得,掌握這幾個重點,你也可以戒掉止痛藥(?):
變數(Variables)var
, let
, const
。不過,自 ECMAScript 6(ES6)開始,會建議使用 let
和 const
,因為它們有更嚴格的作用域(Scope)規則。
資料類型(Data Types)
Number, String, Boolean, Object, Array, Function 等等。不同的資料類型有不同的使用方式。
條件句(Conditional Statements)if
, else
/switch...case
,這個的使用就跟邏輯有關係了
迴圈 (Loops)
最常見的是for
迴圈和while
迴圈。除此之外,ES6 還引入了for...of
迴圈,用於取用陣列中的每個元素。還有for...in
用於拿取對象的指定屬性。例如:
const person = {
firstName: "貝果",
lastName: "陳",
age: 33
};
for (let key in person) {
console.log(key + ": " + person[key]);
}
//firstName: "貝果"
//lastName: "陳"
//age: 33
迴圈首先從目標對象 object 中選取第一個屬性,並將其名稱儲存在變數 variable 中。
然後,執行迴圈內的操作,這個範例就是 console.log
。
迴圈重複進行,選擇下一個屬性,並再將其名稱存儲在變數 variable 中,然後再次執行操作。
此過程一直持續到完成所有 object 內的動作。
如 Visual Studio Code 或是 CodePen。
包括如何定義函數、傳遞參數和返回值(return)。
function add1(i){
i = i+1;
console.log(i);
}
//
如何操作陣列和物件,不同屬性有不同的 methods,包括新增、刪除、更改屬性(例如從數字變字串),以及使用陣列的內建方法,如 push()
、pop()
、splice()
等。
ECMAScript 6(ES6)的新特性,如箭頭函式、解構、字串符號(${name}
)、預設參數等。
函式表示法:
// 匿名函式 Traditional anonymous function
(function (a, b) {
return a + b + 100;
});
// 箭頭函式 Arrow function
(a, b) => a + b + 100;
解構:
// 陣列解構賦值
const [first, second] = [1, 2];
// 物件解構賦值
const { name, age } = { name: "貝果", age: 33 };
字串符號:
const name = "貝果";
const greeting = `Hello, ${name}!`;
// Hello, 貝果!
我們通常會使用console.log(xxxxx)
來確認現在走到哪一行,xxxxx可以換成任何你想在 console 印出的東西;另外在遇到處理 http 請求的狀況下,也可以使用 try...catch
:
try {
const result = 10 / 0; // 假設這個就是我們預設的錯誤,數字不得除以0
console.log(result); // 這行不會執行
} catch (error) {
// 在錯誤發生時執行這裡的程式
console.error("An error occurred:", error.message);
}
catch
中的 error
變數將捕獲到引發錯誤的對象,也就是「除數不能為零」,並且使用 error
變數來拿取錯誤訊息(error.message)。
理解變數的可見性和生存期。
使用Promise
、async/await
等技術來處理非同步任務,例如 http 請求。
是一個特殊的關鍵字,它代表了當前 code 的上下文或物件。理解 this
是非常重要的,因為它在 JavaScript 中的使用非常廣泛,但也容易引起混淆。
例如:箭頭函式沒有 this
!
學習一種框架,如 React、Vue.js,或是 Angular。
大致上是這樣,後面有機會我們再來仔細介紹各個要點吧(茶)
可能因為第一個接觸的就是 JS
傷我也最深(????